var Login = new Class({
	"Extends":js.underas.container.ModWindow
	,"idOrganizacao":0
	,"idGrupo":0
	,"idUsuario":0
	,"idMembro":0
	,"amAviso":null
	,"notifys":null
	,"itlogin":null
	,"itsenha":null
	,"btEntrar":null
	,"initialize":function(){
		this.parent("Login");
		this.setRevision("$Revision: 139 $");
		this.setSize(4);
		this.getEle().addClass("col-sm-offset-4 col-xs-offset-0");
		
		this.amAviso = new js.underas.controller.AlertMsg("");
		this.amAviso.show(false);
		
		this.itlogin = new InputEmail("");	 
		this.itlogin.setLabel("login");
		this.itlogin.setPlaceHolder("digite seu login");
		this.itlogin.setSize(12);
		this.itlogin.setIcon("user");
		
		this.itsenha = new InputPassWord("");
		this.itsenha.setLabel("senha");
		this.itsenha.setPlaceHolder("digite sua senha");
		this.itsenha.setSize(12);
		
		this.btEntrar = new js.underas.controller.Button("Logar");
		
		this.btEntrar.addEvent("click",this.logar.bind(this));
		this.append(this.amAviso);
		this.append(this.itlogin);
		this.append(this.itsenha);	
		this.append(this.btEntrar);		
	}
	,"onStart":function(){
		this.getModView().showNav(false);
	}
	,"logar":function(){  
	   
	   if(!this.itlogin.isValid()){
		   this.itlogin.setValid(false);
		   this.amAviso.setText("Login invalido!");
		   this.amAviso.setType(js.underas.controller.AlertMsg.TP_ERROR);
		   this.amAviso.show(true);	  
		   return false;
	   }else{
		   this.itlogin.setValid(true);
		   this.amAviso.show(false);	
	   }
	   if(!this.itsenha.isValid()){
		   this.itsenha.setValid(false);
		   this.amAviso.setText("Digite uma senha!");
		   this.amAviso.setType(js.underas.controller.AlertMsg.TP_ERROR);
		   this.amAviso.show(true);
		   return false;
	   }else{
		   this.itsenha.setValid(true);
		   this.amAviso.show(false);	
	   }
		
	   js.underas.net.RequestManager.addRequest({"puid":this.getVarModule(),"s":"usuario.business.UsuarioBLL.logar","email":this.itlogin.getValue(),"senha":this.itsenha.getValue(),"onLoad":function(dta){
		   	if(dta.rs==true){
	    	   login.getMenusByLoginUsuario(login.itlogin.getValue());
	           login.amAviso.show(false);           
	           js.underas.net.RequestManager.addRequest({
		       		"s" : "usuario.business.UsuarioBLL.getByLogin",
		       		"p" : login.itlogin.getValue(),
		       		"puid":"login",
		       		"onLoad" : function(dta) {
		       			if(dta.rs){
		       				var dtaUser = dta.rs;
			       			login.idOrganizacao = dtaUser.idOrganizacao;
			       			login.idUsuario = dtaUser.idUsuario;
			       			login.idGrupo = dtaUser.idGrupo;
			       			login.idMembro = dtaUser.idMembro;	       			
			       			//setTimeout(NotificacaoS.getByIdGrupo(), 5000);
			       			login.getModView().show(false).showNav(false);
			       			login.getNotificaoes();
		       			}
		       		}
		       	});
	           
		   	}else{
		   		login.amAviso.setText("Login ou senha invalidos!");
		   		login.amAviso.setType(js.underas.controller.AlertMsg.TP_ERROR);
		   		login.amAviso.show(true);	   		
		   		_gaq.push(['_trackEvent', 'usuario.business.UsuarioBLL.logar', 'invalido']);
		   	}
	   }});
	  
	}
	,"logOff":function() {	
		var menu = new MenuTab({"title":"InfoAta 3.1","target":"#sidebar"});
		menu.setDataProvider([]);
		$$("#navbarlist li").setStyle("display","none");
		login.itlogin.setValue("");
		login.itsenha.setValue("");
		login.getModView().show(true).showNav(true);
	}
	,"autoLogin":function() {
		var tl = _.getUrlParam("login");
		var ts = _.getUrlParam("senha");	
		if(tl!=""){
			login.itlogin.setValue(tl);
			login.itsenha.setValue(ts);
			login.logar();
		}
	}
	,"getMenusByLoginUsuario":function(loginusuario) {
		js.underas.net.RequestManager.addRequest({
			//"s" : "MenuBLL.getMenusByIdGrupo",
			"format":js.underas.net.RequestManager.TP_JSONP,
			"url":"http://192.168.5.59:8330/ata3/ws",
			"s" : "menu.business.MenuBLL.getMenusByLoginUsuario",
			"p" : loginusuario,
			"puid":this.getVarModule(),
			//"p" : 1,
			"onLoad" : function(dt) {
				var menu = new MenuTab({"title":"InfoAta 3.1","target":"#sidebar"});
				menu.setDataProvider(new js.underas.util.ArrayList(dt.rs));
				menu.setIcon('assets/logo_title.jpg');
			}
		});
	}
	,"getNotificaoes":function(){
		js.underas.net.RequestManager.addRequest({
			"s" : "notificacao.business.ConfigNotificacaoBLL.getValidasByIdGrupo",
			//"m":"notificacao",
			"puid":"login",
			"p" : login.idGrupo,
			"onLoad" : function(dtas) {			
				login.notifys = new ArrayList(dtas.rs);				
				var tmL = login.notifys.size();
				if(tmL > 0){					
					var plogin = login.itlogin.getValue();
					var pidOrganizacao = login.idOrganizacao;
					var pidGrupo = login.idGrupo;
					var	pidUsuario = login.idUsuario;
					
					for(var y = 0;y < tmL;y++){						
						  var tmpS = login.notifys.get(y)["servicoCount"];
						  var tmpM = 'none'; 
						  if(tmpS.match(/\.*?\./g).length > 1){
							  tmpS = tmpS.substring(tmpS.indexOf('.')+1,tmpS.length);
						   	  tmpM = login.notifys.get(y)["servicoCount"].substring(0,login.notifys.get(y)["servicoCount"].indexOf('.'));
						  }				
						  js.underas.net.RequestManager.addRequest({
							"s" : tmpM+".business."+tmpS,
							"t"  : (y+1),
							"puid":"login",
							//"idRequest":(y+1),
							"idGrupo" : pidGrupo,
							"email":plogin,
							"idUsuario":pidUsuario,	
							"idOrganizacao":pidOrganizacao,
							"onLoad":function(dtasL){
									//funcao chamada deve retornar um inteiro com o total do servico
									var totalRs = dtasL.rs;
									if(totalRs > 0){									
										var x = parseInt(dtasL.t);	
										x--;
										var sList = login.notifys.get(x)["servicoList"];												
										var mody = sList;								
										var fnACT = "";
										if(sList.indexOf(":")>-1){
											var posiFn = sList.indexOf(":");
											fnACT = sList.substring(posiFn+1,sList.length);
											mody = sList.substring(0,posiFn);
										}					
										
										
									
										var tp_notic_obj = login.notifys.get(x)["tpNotificacao"];
										var tipoN =js.underas.controller.Notify.TP_SUCCESS;
										if(tp_notic_obj==2){
											tipoN = js.underas.controller.Notify.TP_WARNING;
										}else if(tp_notic_obj==3){
											tipoN = js.underas.controller.Notify.TP_ERROR;
										}
										
										mainNotifyPool.addNotify(new js.underas.controller.Notify({
											"title":login.notifys.get(x)["descricao"]
											,"subtitle":login.notifys.get(x)["mascara"]
											,"count":totalRs
											,"type":tipoN
											,"varmod":mody
											,"actmod":fnACT	 
											,"titlemod":login.notifys.get(x)["descricao"]
											,"iconmo":"file"															
										}));										
									}
							}});
					}					
				}				
			}
		});
		
	}
});
